package com.bifang.core.dao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bifang.common.vo.HomePageOperationVO;
import com.bifang.common.vo.OplogQueryVO;
import com.bifang.common.vo.OplogUpdateDelSqlVO;
import com.bifang.common.vo.OplogVO;
import com.bifang.core.dao.model.Oplog;
import java.math.BigDecimal;
import java.util.List;

/**
 * 业务日志主表 服务类
 *
 * @author chenzh
 * @since 2020-06-13
 */
public interface OplogService extends IService<Oplog> {
    /** 获取下级任务 */
    Oplog getByParentId(Long parentId);
    /** 获取该任务的下级签收任务 */
    List<Oplog> getByBusNoAndActId(BigDecimal busNo, List<String> actIds);
    /** 获取办理中列表 */
    List<OplogVO> getHandleTasks(OplogQueryVO oplogQueryVO);
    /** 获取已办结列表 */
    List<OplogVO> getFinishedTasks(OplogQueryVO vo);

    /**
     * 所有办件查询
     *
     * @param vo
     * @return
     */
    List<OplogVO> getAllApplyTasks(OplogQueryVO vo);

    /**
     * 查询已办列表(通过操作日志)
     *
     * @param vo
     * @return
     */
    List<OplogVO> getApplyedTasks(OplogQueryVO vo);

    void commonUpdateDel(OplogUpdateDelSqlVO vo);

    // 获取业务数据量排行
    List<HomePageOperationVO> getOperationNum(OplogQueryVO vo);
    // 获取已办办件量
    Integer getApplyedNum(OplogQueryVO vo);

    // 迁移oplog数据到oplog_history
    void moveOplogData(OplogQueryVO oplogQueryVO);
    // 迁移oplogApi数据到oplog_api_history
    void moveOplogApiData(OplogQueryVO oplogQueryVO);
    // 迁移oplog_table_change数据到oplog_table_changeh
    void moveOplogTableChangeData(OplogQueryVO oplogQueryVO);

    // 清除oplog数据
    List<String> getClearOplogData(OplogQueryVO oplogQueryVO);
    // 清除oplogApi数据
    List<String> getClearOplogApiData(OplogQueryVO oplogQueryVO);
    // 清除oplog_table_change
    List<String> getClearOplogTableChangeData(OplogQueryVO oplogQueryVO);
}
